package com.google.zxing.integration.android;

public final class IntentResult {

	  private final String contents;
	  private final String formatName;
	  private final byte[] rawBytes;
	  private final Integer orientation;
	  private final String errorCorrectionLevel;

	  IntentResult() {
	    this(null, null, null, null, null);
	  }

	  IntentResult(String contents,
	               String formatName,
	               byte[] rawBytes,
	               Integer orientation,
	               String errorCorrectionLevel) {
	    this.contents = contents;
	    this.formatName = formatName;
	    this.rawBytes = rawBytes;
	    this.orientation = orientation;
	    this.errorCorrectionLevel = errorCorrectionLevel;
	  }

	  /**
	   * @return raw content of barcode
	   */
	  public String getContents() {
	    return contents;
	  }

	  /**
	   * @return name of format, like "QR_CODE", "UPC_A". See {@code BarcodeFormat} for more format names.
	   */
	  public String getFormatName() {
	    return formatName;
	  }

	  /**
	   * @return raw bytes of the barcode content, if applicable, or null otherwise
	   */
	  public byte[] getRawBytes() {
	    return rawBytes;
	  }

	  /**
	   * @return rotation of the image, in degrees, which resulted in a successful scan. May be null.
	   */
	  public Integer getOrientation() {
	    return orientation;
	  }

	  /**
	   * @return name of the error correction level used in the barcode, if applicable
	   */
	  public String getErrorCorrectionLevel() {
	    return errorCorrectionLevel;
	  }
	 
	  @Override
	  public String toString() {
	    StringBuilder dialogText = new StringBuilder(100);
	    dialogText.append("Format: ").append(formatName).append('\n');
	    dialogText.append("Contents: ").append(contents).append('\n');
	    int rawBytesLength = rawBytes == null ? 0 : rawBytes.length;
	    dialogText.append("Raw bytes: (").append(rawBytesLength).append(" bytes)\n");
	    dialogText.append("Orientation: ").append(orientation).append('\n');
	    dialogText.append("EC level: ").append(errorCorrectionLevel).append('\n');
	    return dialogText.toString();
	  }

	}
